.class public Lcom/zuimeia/ui/lockpattern/LockNumberView;
.super Landroid/view/View;
.source "LockNumberView.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;,
        Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;,
        Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;,
        Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    }
.end annotation


# static fields
.field private static final ASPECT_LOCK_HEIGHT:I = 0x2

.field private static final ASPECT_LOCK_WIDTH:I = 0x1

.field private static final ASPECT_SQUARE:I = 0x0

.field private static final DEFAULT_PWD_LENGTH:I = 0x4

.field private static final DRAG_THRESHOLD:F = 0.0f

.field private static final MAX_RADIUS:I = 0x20

.field private static final MIN_RADIUS:I

.field private static final PROFILE_DRAWING:Z


# instance fields
.field private mAspect:I

.field mCenterF:Landroid/graphics/PointF;

.field private final mCurrentPath:Landroid/graphics/Path;

.field private mDiameterFactor:F

.field private mDrawingProfilingStarted:Z

.field private mEnableHapticFeedback:Z

.field mEndF:Landroid/graphics/PointF;

.field private mHighlightTextColor:I

.field private mHitFactor:F

.field private mInProgressX:F

.field private mInProgressY:F

.field private mInStealthMode:Z

.field private mInputEnabled:Z

.field mIntersectionRet:Landroid/graphics/PointF;

.field private final mInvalidate:Landroid/graphics/Rect;

.field private mIsTouching:Z

.field private mMaxRadius:I

.field private mMinRadius:I

.field private mOnActionButtonClickListener:Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;

.field private mOnPatternListener:Lcom/zuimeia/ui/lockpattern/OnPatternListener;

.field private mPaint:Landroid/graphics/Paint;

.field private mPattern:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList",
            "<",
            "Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;",
            ">;"
        }
    .end annotation
.end field

.field private mPatternDetected:Z

.field private mPatternDisplayMode:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

.field private mPatternDrawLookup:[[Z

.field private mPatternFadingOutLookup:[[Z

.field private mPatternInProgress:Z

.field private mPwdLength:I

.field private mSquareHeight:F

.field private mSquareWidth:F

.field mStartF:Landroid/graphics/PointF;

.field private mTextColor:I

.field private mTextPaint:Landroid/graphics/Paint;

.field private mTextSize:I

.field private final mTmpInvalidateRect:Landroid/graphics/Rect;


# direct methods
.method public constructor <init>(Landroid/content/Context;)V
    .registers 3
    .param p1, "context"    # Landroid/content/Context;

    .prologue
    .line 242
    const/4 v0, 0x0

    invoke-direct {p0, p1, v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V

    .line 243
    return-void
.end method

.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
    .registers 14
    .param p1, "context"    # Landroid/content/Context;
    .param p2, "attrs"    # Landroid/util/AttributeSet;

    .prologue
    .line 246
    invoke-direct {p0, p1, p2}, Landroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V

    .line 68
    const/4 v9, 0x0

    iput-boolean v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mDrawingProfilingStarted:Z

    .line 70
    new-instance v9, Landroid/graphics/Paint;

    invoke-direct {v9}, Landroid/graphics/Paint;-><init>()V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    .line 71
    new-instance v9, Landroid/graphics/Paint;

    invoke-direct {v9}, Landroid/graphics/Paint;-><init>()V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    .line 81
    new-instance v9, Ljava/util/ArrayList;

    const/16 v10, 0xa

    invoke-direct {v9, v10}, Ljava/util/ArrayList;-><init>(I)V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    .line 87
    const/4 v9, 0x4

    const/4 v10, 0x3

    filled-new-array {v9, v10}, [I

    move-result-object v9

    sget-object v10, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    invoke-static {v10, v9}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;

    move-result-object v9

    check-cast v9, [[Z

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    .line 88
    const/4 v9, 0x4

    const/4 v10, 0x3

    filled-new-array {v9, v10}, [I

    move-result-object v9

    sget-object v10, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    invoke-static {v10, v9}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;

    move-result-object v9

    check-cast v9, [[Z

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternFadingOutLookup:[[Z

    .line 93
    const/high16 v9, -0x40800000

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressX:F

    .line 94
    const/high16 v9, -0x40800000

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressY:F

    .line 96
    sget-object v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;->Correct:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDisplayMode:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    .line 97
    const/4 v9, 0x1

    iput-boolean v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInputEnabled:Z

    .line 98
    const/4 v9, 0x0

    iput-boolean v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInStealthMode:Z

    .line 99
    const/4 v9, 0x1

    iput-boolean v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mEnableHapticFeedback:Z

    .line 100
    const/4 v9, 0x0

    iput-boolean v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternInProgress:Z

    .line 101
    const/4 v9, 0x0

    iput-boolean v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDetected:Z

    .line 102
    const/4 v9, 0x0

    iput-boolean v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mIsTouching:Z

    .line 104
    const v9, 0x3dcccccd

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mDiameterFactor:F

    .line 105
    const v9, 0x3f19999a

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mHitFactor:F

    .line 110
    new-instance v9, Landroid/graphics/Path;

    invoke-direct {v9}, Landroid/graphics/Path;-><init>()V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mCurrentPath:Landroid/graphics/Path;

    .line 111
    new-instance v9, Landroid/graphics/Rect;

    invoke-direct {v9}, Landroid/graphics/Rect;-><init>()V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInvalidate:Landroid/graphics/Rect;

    .line 112
    new-instance v9, Landroid/graphics/Rect;

    invoke-direct {v9}, Landroid/graphics/Rect;-><init>()V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTmpInvalidateRect:Landroid/graphics/Rect;

    .line 114
    new-instance v9, Landroid/graphics/PointF;

    invoke-direct {v9}, Landroid/graphics/PointF;-><init>()V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mIntersectionRet:Landroid/graphics/PointF;

    .line 115
    new-instance v9, Landroid/graphics/PointF;

    invoke-direct {v9}, Landroid/graphics/PointF;-><init>()V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mStartF:Landroid/graphics/PointF;

    .line 116
    new-instance v9, Landroid/graphics/PointF;

    invoke-direct {v9}, Landroid/graphics/PointF;-><init>()V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mEndF:Landroid/graphics/PointF;

    .line 117
    new-instance v9, Landroid/graphics/PointF;

    invoke-direct {v9}, Landroid/graphics/PointF;-><init>()V

    iput-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mCenterF:Landroid/graphics/PointF;

    .line 121
    const/16 v9, 0x4b

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextSize:I

    .line 135
    const/4 v9, -0x1

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextColor:I

    .line 136
    const/4 v9, -0x1

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mHighlightTextColor:I

    .line 248
    sget-object v9, Lcom/zuimeia/ui/R$styleable;->LockPatternView:[I

    invoke-virtual {p1, p2, v9}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;

    move-result-object v7

    .line 259
    .local v7, "typedArray":Landroid/content/res/TypedArray;
    const/4 v9, 0x0

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mAspect:I

    .line 262
    sget v9, Lcom/zuimeia/ui/R$styleable;->LockPatternView_cancelDrawable:I

    invoke-virtual {v7, v9}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable;

    move-result-object v0

    .line 263
    .local v0, "cancelDrawable":Landroid/graphics/drawable/Drawable;
    sget v9, Lcom/zuimeia/ui/R$styleable;->LockPatternView_deleteDrawable:I

    invoke-virtual {v7, v9}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable;

    move-result-object v3

    .line 265
    .local v3, "deleteDrawable":Landroid/graphics/drawable/Drawable;
    invoke-virtual {v7}, Landroid/content/res/TypedArray;->recycle()V

    .line 267
    const/4 v9, 0x4

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPwdLength:I

    .line 269
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getResources()Landroid/content/res/Resources;

    move-result-object v9

    invoke-virtual {v9}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;

    move-result-object v6

    .line 270
    .local v6, "metrics":Landroid/util/DisplayMetrics;
    const/4 v9, 0x1

    const/4 v10, 0x0

    invoke-static {v9, v10, v6}, Landroid/util/TypedValue;->applyDimension(IFLandroid/util/DisplayMetrics;)F

    move-result v9

    float-to-int v9, v9

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mMinRadius:I

    .line 271
    const/4 v9, 0x1

    const/high16 v10, 0x42000000

    invoke-static {v9, v10, v6}, Landroid/util/TypedValue;->applyDimension(IFLandroid/util/DisplayMetrics;)F

    move-result v9

    float-to-int v9, v9

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mMaxRadius:I

    .line 273
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getResources()Landroid/content/res/Resources;

    move-result-object v9

    sget v10, Lcom/zuimeia/ui/R$dimen;->number_text_size:I

    invoke-virtual {v9, v10}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I

    move-result v9

    iput v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextSize:I

    .line 275
    const/4 v9, 0x1

    invoke-virtual {p0, v9}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->setClickable(Z)V

    .line 277
    iget-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    const/4 v10, 0x1

    invoke-virtual {v9, v10}, Landroid/graphics/Paint;->setAntiAlias(Z)V

    .line 278
    iget-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    const/4 v10, 0x1

    invoke-virtual {v9, v10}, Landroid/graphics/Paint;->setDither(Z)V

    .line 279
    iget-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    sget-object v10, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;

    invoke-virtual {v9, v10}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V

    .line 280
    iget-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    const/4 v10, -0x1

    invoke-virtual {v9, v10}, Landroid/graphics/Paint;->setColor(I)V

    .line 282
    iget-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    const/4 v10, 0x1

    invoke-virtual {v9, v10}, Landroid/graphics/Paint;->setAntiAlias(Z)V

    .line 283
    iget-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    const/4 v10, 0x1

    invoke-virtual {v9, v10}, Landroid/graphics/Paint;->setDither(Z)V

    .line 284
    iget-object v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    sget-object v10, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;

    invoke-virtual {v9, v10}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V

    .line 286
    invoke-static {}, Lcom/zuimeia/ui/lockpattern/LockPatternThemeUtils;->getRandomThemeColorsForNumber()[[I

    move-result-object v2

    .line 287
    .local v2, "colors":[[I
    const/4 v4, 0x0

    .local v4, "i":I
    :goto_117
    const/4 v9, 0x3

    if-ge v4, v9, :cond_15e

    .line 288
    const/4 v5, 0x0

    .local v5, "j":I
    :goto_11b
    const/4 v9, 0x3

    if-ge v5, v9, :cond_15b

    .line 289
    invoke-static {v4, v5}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v1

    .line 290
    .local v1, "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    iget v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mMinRadius:I

    int-to-float v9, v9

    iput v9, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->radius:F

    .line 291
    iget v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mMinRadius:I

    int-to-float v9, v9

    iput v9, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->smallRadius:F

    .line 292
    aget-object v9, v2, v4

    aget v9, v9, v5

    iput v9, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->color:I

    .line 293
    iget v9, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->color:I

    invoke-static {v9}, Landroid/graphics/Color;->alpha(I)I

    move-result v9

    iput v9, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->maxAlpha:I

    .line 294
    new-instance v9, Ljava/lang/StringBuilder;

    invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V

    mul-int/lit8 v10, v4, 0x3

    add-int/2addr v10, v5

    add-int/lit8 v10, v10, 0x1

    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v9

    const-string v10, ""

    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v9

    invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v9

    iput-object v9, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->text:Ljava/lang/String;

    .line 295
    iget v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextColor:I

    iput v9, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->textTransitionColor:I

    .line 288
    add-int/lit8 v5, v5, 0x1

    goto :goto_11b

    .line 287
    .end local v1    # "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    :cond_15b
    add-int/lit8 v4, v4, 0x1

    goto :goto_117

    .line 299
    .end local v5    # "j":I
    :cond_15e
    const/4 v9, 0x3

    const/4 v10, 0x1

    invoke-static {v9, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v8

    .line 300
    .local v8, "zeroCell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    iget v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mMinRadius:I

    int-to-float v9, v9

    iput v9, v8, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->radius:F

    .line 301
    iget v9, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mMinRadius:I

    int-to-float v9, v9

    iput v9, v8, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->smallRadius:F

    .line 302
    const/4 v9, 0x3

    aget-object v9, v2, v9

    const/4 v10, 0x1

    aget v9, v9, v10

    iput v9, v8, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->color:I

    .line 303
    iget v9, v8, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->color:I

    invoke-static {v9}, Landroid/graphics/Color;->alpha(I)I

    move-result v9

    iput v9, v8, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->maxAlpha:I

    .line 304
    const-string v9, "0"

    iput-object v9, v8, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->text:Ljava/lang/String;

    .line 306
    if-nez v0, :cond_1b5

    .line 307
    const/4 v9, 0x3

    const/4 v10, 0x0

    invoke-static {v9, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v9

    sget v10, Lcom/zuimeia/ui/R$drawable;->keypad_back:I

    invoke-direct {p0, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getBitmapFor(I)Landroid/graphics/Bitmap;

    move-result-object v10

    iput-object v10, v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->imgBg:Landroid/graphics/Bitmap;

    .line 312
    .end local v0    # "cancelDrawable":Landroid/graphics/drawable/Drawable;
    :goto_192
    if-nez v3, :cond_1c4

    .line 313
    const/4 v9, 0x3

    const/4 v10, 0x2

    invoke-static {v9, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v9

    sget v10, Lcom/zuimeia/ui/R$drawable;->keypad_delete:I

    invoke-direct {p0, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getBitmapFor(I)Landroid/graphics/Bitmap;

    move-result-object v10

    iput-object v10, v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->imgBg:Landroid/graphics/Bitmap;

    .line 318
    .end local v3    # "deleteDrawable":Landroid/graphics/drawable/Drawable;
    :goto_1a2
    const/4 v9, 0x3

    const/4 v10, 0x0

    invoke-static {v9, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v9

    const/4 v10, 0x1

    iput-boolean v10, v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->isActionButton:Z

    .line 319
    const/4 v9, 0x3

    const/4 v10, 0x2

    invoke-static {v9, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v9

    const/4 v10, 0x1

    iput-boolean v10, v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->isActionButton:Z

    .line 321
    return-void

    .line 309
    .restart local v0    # "cancelDrawable":Landroid/graphics/drawable/Drawable;
    .restart local v3    # "deleteDrawable":Landroid/graphics/drawable/Drawable;
    :cond_1b5
    const/4 v9, 0x3

    const/4 v10, 0x0

    invoke-static {v9, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v9

    check-cast v0, Landroid/graphics/drawable/BitmapDrawable;

    .end local v0    # "cancelDrawable":Landroid/graphics/drawable/Drawable;
    invoke-virtual {v0}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;

    move-result-object v10

    iput-object v10, v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->imgBg:Landroid/graphics/Bitmap;

    goto :goto_192

    .line 315
    :cond_1c4
    const/4 v9, 0x3

    const/4 v10, 0x2

    invoke-static {v9, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v9

    check-cast v3, Landroid/graphics/drawable/BitmapDrawable;

    .end local v3    # "deleteDrawable":Landroid/graphics/drawable/Drawable;
    invoke-virtual {v3}, Landroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;

    move-result-object v10

    iput-object v10, v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->imgBg:Landroid/graphics/Bitmap;

    goto :goto_1a2
.end method

.method static synthetic access$000(Lcom/zuimeia/ui/lockpattern/LockNumberView;)I
    .registers 2
    .param p0, "x0"    # Lcom/zuimeia/ui/lockpattern/LockNumberView;

    .prologue
    .line 61
    iget v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mHighlightTextColor:I

    return v0
.end method

.method static synthetic access$100(Lcom/zuimeia/ui/lockpattern/LockNumberView;)Z
    .registers 2
    .param p0, "x0"    # Lcom/zuimeia/ui/lockpattern/LockNumberView;

    .prologue
    .line 61
    iget-boolean v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mIsTouching:Z

    return v0
.end method

.method static synthetic access$200(Lcom/zuimeia/ui/lockpattern/LockNumberView;)[[Z
    .registers 2
    .param p0, "x0"    # Lcom/zuimeia/ui/lockpattern/LockNumberView;

    .prologue
    .line 61
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    return-object v0
.end method

.method static synthetic access$300(Lcom/zuimeia/ui/lockpattern/LockNumberView;)[[Z
    .registers 2
    .param p0, "x0"    # Lcom/zuimeia/ui/lockpattern/LockNumberView;

    .prologue
    .line 61
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternFadingOutLookup:[[Z

    return-object v0
.end method

.method private addCellToPattern(Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V
    .registers 5
    .param p1, "newCell"    # Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    .prologue
    .line 619
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    invoke-virtual {p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getRow()I

    move-result v1

    aget-object v0, v0, v1

    invoke-virtual {p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getColumn()I

    move-result v1

    const/4 v2, 0x1

    aput-boolean v2, v0, v1

    .line 620
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternFadingOutLookup:[[Z

    invoke-virtual {p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getRow()I

    move-result v1

    aget-object v0, v0, v1

    invoke-virtual {p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getColumn()I

    move-result v1

    const/4 v2, 0x0

    aput-boolean v2, v0, v1

    .line 621
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 622
    invoke-direct {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->notifyCellAdded()V

    .line 624
    invoke-direct {p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->animatePopup(Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V

    .line 625
    return-void
.end method

.method private animateFadeOut(Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V
    .registers 16
    .param p1, "cell"    # Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    .prologue
    const-wide/16 v12, 0x1c2

    const/4 v11, 0x2

    const/4 v10, 0x0

    const/high16 v2, 0x40000000

    const/4 v9, 0x1

    .line 928
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternFadingOutLookup:[[Z

    invoke-virtual {p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getRow()I

    move-result v1

    aget-object v0, v0, v1

    invoke-virtual {p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getColumn()I

    move-result v1

    aput-boolean v9, v0, v1

    .line 930
    iget v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->column:I

    invoke-direct {p0, v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterXForColumn(I)F

    move-result v3

    .line 931
    .local v3, "startX":F
    iget v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->row:I

    invoke-direct {p0, v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterYForRow(I)F

    move-result v5

    .line 933
    .local v5, "startY":F
    iget v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    div-float v4, v0, v2

    .line 934
    .local v4, "widthOffset":F
    iget v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareHeight:F

    div-float v6, v0, v2

    .line 937
    .local v6, "heightOffset":F
    new-array v0, v11, [F

    iget v1, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->alpha:F

    aput v1, v0, v10

    const/4 v1, 0x0

    aput v1, v0, v9

    invoke-static {v0}, Landroid/animation/ValueAnimator;->ofFloat([F)Landroid/animation/ValueAnimator;

    move-result-object v7

    .line 938
    .local v7, "alphaAnimator":Landroid/animation/ValueAnimator;
    invoke-virtual {v7, v12, v13}, Landroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/ValueAnimator;

    .line 939
    new-instance v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$3;

    invoke-direct {v0, p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$3;-><init>(Lcom/zuimeia/ui/lockpattern/LockNumberView;Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V

    invoke-virtual {v7, v0}, Landroid/animation/ValueAnimator;->addListener(Landroid/animation/Animator$AnimatorListener;)V

    .line 957
    new-instance v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$4;

    move-object v1, p0

    move-object v2, p1

    invoke-direct/range {v0 .. v6}, Lcom/zuimeia/ui/lockpattern/LockNumberView$4;-><init>(Lcom/zuimeia/ui/lockpattern/LockNumberView;Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;FFFF)V

    invoke-virtual {v7, v0}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V

    .line 966
    iget-object v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->animator:Landroid/animation/Animator;

    if-eqz v0, :cond_a7

    iget-object v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->animator:Landroid/animation/Animator;

    invoke-virtual {v0}, Landroid/animation/Animator;->isRunning()Z

    move-result v0

    if-eqz v0, :cond_a7

    .line 967
    iget-object v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->animator:Landroid/animation/Animator;

    new-instance v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$5;

    invoke-direct {v1, p0, p1, v7}, Lcom/zuimeia/ui/lockpattern/LockNumberView$5;-><init>(Lcom/zuimeia/ui/lockpattern/LockNumberView;Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;Landroid/animation/ValueAnimator;)V

    invoke-virtual {v0, v1}, Landroid/animation/Animator;->addListener(Landroid/animation/Animator$AnimatorListener;)V

    .line 981
    :goto_61
    iget v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextColor:I

    iget v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mHighlightTextColor:I

    if-eq v0, v1, :cond_a6

    .line 982
    new-array v0, v11, [I

    iget v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mHighlightTextColor:I

    aput v1, v0, v10

    iget v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextColor:I

    aput v1, v0, v9

    invoke-static {v0}, Landroid/animation/ObjectAnimator;->ofInt([I)Landroid/animation/ValueAnimator;

    move-result-object v8

    .line 983
    .local v8, "colorAnimator":Landroid/animation/ValueAnimator;
    invoke-virtual {v8, v12, v13}, Landroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/ValueAnimator;

    .line 984
    new-instance v0, Landroid/animation/ArgbEvaluator;

    invoke-direct {v0}, Landroid/animation/ArgbEvaluator;-><init>()V

    invoke-virtual {v8, v0}, Landroid/animation/ValueAnimator;->setEvaluator(Landroid/animation/TypeEvaluator;)V

    .line 985
    new-instance v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$6;

    invoke-direct {v0, p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$6;-><init>(Lcom/zuimeia/ui/lockpattern/LockNumberView;Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V

    invoke-virtual {v8, v0}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V

    .line 993
    new-instance v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$7;

    invoke-direct {v0, p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$7;-><init>(Lcom/zuimeia/ui/lockpattern/LockNumberView;Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V

    invoke-virtual {v8, v0}, Landroid/animation/ValueAnimator;->addListener(Landroid/animation/Animator$AnimatorListener;)V

    .line 1002
    iget-object v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->textTransitionAnimator:Landroid/animation/Animator;

    if-eqz v0, :cond_ad

    iget-object v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->textTransitionAnimator:Landroid/animation/Animator;

    invoke-virtual {v0}, Landroid/animation/Animator;->isRunning()Z

    move-result v0

    if-eqz v0, :cond_ad

    .line 1003
    iget-object v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->animator:Landroid/animation/Animator;

    new-instance v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$8;

    invoke-direct {v1, p0, p1, v8}, Lcom/zuimeia/ui/lockpattern/LockNumberView$8;-><init>(Lcom/zuimeia/ui/lockpattern/LockNumberView;Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;Landroid/animation/ValueAnimator;)V

    invoke-virtual {v0, v1}, Landroid/animation/Animator;->addListener(Landroid/animation/Animator$AnimatorListener;)V

    .line 1017
    .end local v8    # "colorAnimator":Landroid/animation/ValueAnimator;
    :cond_a6
    :goto_a6
    return-void

    .line 975
    :cond_a7
    iput-object v7, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->animator:Landroid/animation/Animator;

    .line 976
    invoke-virtual {v7}, Landroid/animation/ValueAnimator;->start()V

    goto :goto_61

    .line 1011
    .restart local v8    # "colorAnimator":Landroid/animation/ValueAnimator;
    :cond_ad
    iput-object v8, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->textTransitionAnimator:Landroid/animation/Animator;

    .line 1012
    invoke-virtual {v8}, Landroid/animation/ValueAnimator;->start()V

    goto :goto_a6
.end method

.method private animatePopup(Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V
    .registers 10
    .param p1, "cell"    # Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    .prologue
    const/high16 v1, 0x40000000

    .line 895
    iget v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->column:I

    invoke-direct {p0, v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterXForColumn(I)F

    move-result v3

    .line 896
    .local v3, "startX":F
    iget v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->row:I

    invoke-direct {p0, v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterYForRow(I)F

    move-result v5

    .line 898
    .local v5, "startY":F
    iget v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    div-float v4, v0, v1

    .line 899
    .local v4, "widthOffset":F
    iget v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareHeight:F

    div-float v6, v0, v1

    .line 901
    .local v6, "heightOffset":F
    const/4 v0, 0x2

    new-array v0, v0, [F

    const/4 v1, 0x0

    iget v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mMinRadius:I

    int-to-float v2, v2

    aput v2, v0, v1

    const/4 v1, 0x1

    iget v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mMaxRadius:I

    int-to-float v2, v2

    aput v2, v0, v1

    invoke-static {v0}, Landroid/animation/ValueAnimator;->ofFloat([F)Landroid/animation/ValueAnimator;

    move-result-object v7

    .line 902
    .local v7, "radiusAnimator":Landroid/animation/ValueAnimator;
    const-wide/16 v0, 0x12c

    invoke-virtual {v7, v0, v1}, Landroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/ValueAnimator;

    .line 903
    new-instance v0, Landroid/view/animation/OvershootInterpolator;

    const/high16 v1, 0x40400000

    invoke-direct {v0, v1}, Landroid/view/animation/OvershootInterpolator;-><init>(F)V

    invoke-virtual {v7, v0}, Landroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V

    .line 904
    new-instance v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$1;

    invoke-direct {v0, p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView$1;-><init>(Lcom/zuimeia/ui/lockpattern/LockNumberView;Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V

    invoke-virtual {v7, v0}, Landroid/animation/ValueAnimator;->addListener(Landroid/animation/Animator$AnimatorListener;)V

    .line 911
    new-instance v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$2;

    move-object v1, p0

    move-object v2, p1

    invoke-direct/range {v0 .. v6}, Lcom/zuimeia/ui/lockpattern/LockNumberView$2;-><init>(Lcom/zuimeia/ui/lockpattern/LockNumberView;Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;FFFF)V

    invoke-virtual {v7, v0}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V

    .line 920
    iget-object v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->animator:Landroid/animation/Animator;

    if-eqz v0, :cond_5b

    iget-object v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->animator:Landroid/animation/Animator;

    invoke-virtual {v0}, Landroid/animation/Animator;->isRunning()Z

    move-result v0

    if-eqz v0, :cond_5b

    .line 921
    iget-object v0, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->animator:Landroid/animation/Animator;

    invoke-virtual {v0}, Landroid/animation/Animator;->cancel()V

    .line 923
    :cond_5b
    iput-object v7, p1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->animator:Landroid/animation/Animator;

    .line 924
    invoke-virtual {v7}, Landroid/animation/ValueAnimator;->start()V

    .line 925
    return-void
.end method

.method private checkForNewHit(FF)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    .registers 7
    .param p1, "x"    # F
    .param p2, "y"    # F

    .prologue
    const/4 v2, 0x0

    .line 637
    invoke-direct {p0, p2}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getRowHit(F)I

    move-result v1

    .line 638
    .local v1, "rowHit":I
    if-gez v1, :cond_8

    .line 650
    :cond_7
    :goto_7
    return-object v2

    .line 641
    :cond_8
    invoke-direct {p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getColumnHit(F)I

    move-result v0

    .line 642
    .local v0, "columnHit":I
    if-ltz v0, :cond_7

    .line 646
    iget-object v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    aget-object v3, v3, v1

    aget-boolean v3, v3, v0

    if-nez v3, :cond_7

    .line 650
    invoke-static {v1, v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v2

    goto :goto_7
.end method

.method private clearPatternDrawLookup()V
    .registers 5

    .prologue
    .line 495
    const/4 v0, 0x0

    .local v0, "i":I
    :goto_1
    const/4 v2, 0x4

    if-ge v0, v2, :cond_15

    .line 496
    const/4 v1, 0x0

    .local v1, "j":I
    :goto_5
    const/4 v2, 0x3

    if-ge v1, v2, :cond_12

    .line 497
    iget-object v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    aget-object v2, v2, v0

    const/4 v3, 0x0

    aput-boolean v3, v2, v1

    .line 496
    add-int/lit8 v1, v1, 0x1

    goto :goto_5

    .line 495
    :cond_12
    add-int/lit8 v0, v0, 0x1

    goto :goto_1

    .line 500
    .end local v1    # "j":I
    :cond_15
    return-void
.end method

.method private detectAndAddHit(FFZ)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    .registers 10
    .param p1, "x"    # F
    .param p2, "y"    # F
    .param p3, "feedbackActionButton"    # Z

    .prologue
    const/4 v1, 0x0

    const/4 v5, 0x3

    const/4 v4, 0x1

    .line 591
    iget-object v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v2}, Ljava/util/ArrayList;->size()I

    move-result v2

    iget v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPwdLength:I

    if-lt v2, v3, :cond_f

    move-object v0, v1

    .line 615
    :cond_e
    :goto_e
    return-object v0

    .line 595
    :cond_f
    invoke-direct {p0, p1, p2}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->checkForNewHit(FF)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v0

    .line 596
    .local v0, "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    if-eqz v0, :cond_3c

    .line 597
    iget-boolean v1, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->isActionButton:Z

    if-nez v1, :cond_24

    .line 598
    invoke-direct {p0, v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->addCellToPattern(Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V

    .line 600
    iget-boolean v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mEnableHapticFeedback:Z

    if-eqz v1, :cond_e

    .line 601
    invoke-virtual {p0, v4, v5}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->performHapticFeedback(II)Z

    goto :goto_e

    .line 604
    :cond_24
    if-eqz p3, :cond_e

    .line 605
    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getRow()I

    move-result v2

    aget-object v1, v1, v2

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getColumn()I

    move-result v2

    aput-boolean v4, v1, v2

    .line 607
    iget-boolean v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mEnableHapticFeedback:Z

    if-eqz v1, :cond_e

    .line 608
    invoke-virtual {p0, v4, v5}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->performHapticFeedback(II)Z

    goto :goto_e

    :cond_3c
    move-object v0, v1

    .line 615
    goto :goto_e
.end method

.method private drawCircle(Landroid/graphics/Canvas;IIZII)V
    .registers 24
    .param p1, "canvas"    # Landroid/graphics/Canvas;
    .param p2, "leftX"    # I
    .param p3, "topY"    # I
    .param p4, "partOfPattern"    # Z
    .param p5, "row"    # I
    .param p6, "column"    # I

    .prologue
    .line 1064
    move-object/from16 v0, p0

    move/from16 v1, p6

    invoke-direct {v0, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterXForColumn(I)F

    move-result v3

    .line 1065
    .local v3, "centerX":F
    move-object/from16 v0, p0

    move/from16 v1, p5

    invoke-direct {v0, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterYForRow(I)F

    move-result v4

    .line 1067
    .local v4, "centerY":F
    invoke-static/range {p5 .. p6}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v2

    .line 1068
    .local v2, "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    iget-object v13, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->imgBg:Landroid/graphics/Bitmap;

    if-nez v13, :cond_9b

    .line 1069
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    iget v14, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->color:I

    invoke-virtual {v13, v14}, Landroid/graphics/Paint;->setColor(I)V

    .line 1070
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    iget v14, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->alpha:F

    iget v15, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->maxAlpha:I

    int-to-float v15, v15

    mul-float/2addr v14, v15

    float-to-int v14, v14

    invoke-virtual {v13, v14}, Landroid/graphics/Paint;->setAlpha(I)V

    .line 1072
    if-eqz p4, :cond_8c

    iget v13, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->radius:F

    :goto_33
    move-object/from16 v0, p0

    iget-object v14, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    move-object/from16 v0, p1

    invoke-virtual {v0, v3, v4, v13, v14}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V

    .line 1074
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    const/16 v14, 0xff

    invoke-virtual {v13, v14}, Landroid/graphics/Paint;->setAlpha(I)V

    .line 1075
    if-eqz p4, :cond_8f

    .line 1076
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    iget v14, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->textTransitionColor:I

    invoke-virtual {v13, v14}, Landroid/graphics/Paint;->setColor(I)V

    .line 1080
    :goto_50
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    move-object/from16 v0, p0

    iget v14, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextSize:I

    int-to-float v14, v14

    invoke-virtual {v13, v14}, Landroid/graphics/Paint;->setTextSize(F)V

    .line 1081
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    sget-object v14, Landroid/graphics/Paint$Align;->CENTER:Landroid/graphics/Paint$Align;

    invoke-virtual {v13, v14}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V

    .line 1082
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    invoke-virtual {v13}, Landroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;

    move-result-object v5

    .line 1083
    .local v5, "fontMetrics":Landroid/graphics/Paint$FontMetrics;
    iget v13, v5, Landroid/graphics/Paint$FontMetrics;->bottom:F

    iget v14, v5, Landroid/graphics/Paint$FontMetrics;->top:F

    sub-float/2addr v13, v14

    const/high16 v14, 0x40c00000

    sub-float v6, v13, v14

    .line 1084
    .local v6, "fontTotalHeight":F
    const/high16 v13, 0x40000000

    div-float v13, v6, v13

    iget v14, v5, Landroid/graphics/Paint$FontMetrics;->bottom:F

    sub-float v9, v13, v14

    .line 1085
    .local v9, "offY":F
    add-float v8, v4, v9

    .line 1086
    .local v8, "newY":F
    iget-object v13, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->text:Ljava/lang/String;

    move-object/from16 v0, p0

    iget-object v14, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    move-object/from16 v0, p1

    invoke-virtual {v0, v13, v3, v8, v14}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V

    .line 1096
    .end local v5    # "fontMetrics":Landroid/graphics/Paint$FontMetrics;
    .end local v6    # "fontTotalHeight":F
    .end local v8    # "newY":F
    .end local v9    # "offY":F
    :goto_8b
    return-void

    .line 1072
    :cond_8c
    iget v13, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->smallRadius:F

    goto :goto_33

    .line 1078
    :cond_8f
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    move-object/from16 v0, p0

    iget v14, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextColor:I

    invoke-virtual {v13, v14}, Landroid/graphics/Paint;->setColor(I)V

    goto :goto_50

    .line 1088
    :cond_9b
    iget-object v13, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->imgBg:Landroid/graphics/Bitmap;

    invoke-virtual {v13}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v10

    .line 1089
    .local v10, "width":I
    iget-object v13, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->imgBg:Landroid/graphics/Bitmap;

    invoke-virtual {v13}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v7

    .line 1090
    .local v7, "height":I
    div-int/lit8 v13, v10, 0x2

    int-to-float v13, v13

    sub-float v13, v3, v13

    float-to-int v11, v13

    .line 1091
    .local v11, "x":I
    div-int/lit8 v13, v7, 0x2

    int-to-float v13, v13

    sub-float v13, v4, v13

    float-to-int v12, v13

    .line 1092
    .local v12, "y":I
    move-object/from16 v0, p0

    iget-object v13, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    const/16 v14, 0xff

    invoke-virtual {v13, v14}, Landroid/graphics/Paint;->setAlpha(I)V

    .line 1093
    iget-object v13, v2, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->imgBg:Landroid/graphics/Bitmap;

    int-to-float v14, v11

    int-to-float v15, v12

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPaint:Landroid/graphics/Paint;

    move-object/from16 v16, v0

    move-object/from16 v0, p1

    move-object/from16 v1, v16

    invoke-virtual {v0, v13, v14, v15, v1}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V

    goto :goto_8b
.end method

.method private getBitmapFor(I)Landroid/graphics/Bitmap;
    .registers 3
    .param p1, "resId"    # I

    .prologue
    .line 348
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getContext()Landroid/content/Context;

    move-result-object v0

    invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v0

    invoke-static {v0, p1}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;

    move-result-object v0

    return-object v0
.end method

.method private getCellForNewHit(FF)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    .registers 6
    .param p1, "x"    # F
    .param p2, "y"    # F

    .prologue
    const/4 v2, 0x0

    .line 655
    invoke-direct {p0, p2}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getRowHit(F)I

    move-result v1

    .line 656
    .local v1, "rowHit":I
    if-gez v1, :cond_8

    .line 664
    :cond_7
    :goto_7
    return-object v2

    .line 659
    :cond_8
    invoke-direct {p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getColumnHit(F)I

    move-result v0

    .line 660
    .local v0, "columnHit":I
    if-ltz v0, :cond_7

    .line 664
    invoke-static {v1, v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v2

    goto :goto_7
.end method

.method private getCenterXForColumn(I)F
    .registers 5
    .param p1, "column"    # I

    .prologue
    .line 1020
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingLeft()I

    move-result v0

    int-to-float v0, v0

    int-to-float v1, p1

    iget v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    mul-float/2addr v1, v2

    add-float/2addr v0, v1

    iget v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    const/high16 v2, 0x40000000

    div-float/2addr v1, v2

    add-float/2addr v0, v1

    return v0
.end method

.method private getCenterYForRow(I)F
    .registers 5
    .param p1, "row"    # I

    .prologue
    .line 1024
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingTop()I

    move-result v0

    int-to-float v0, v0

    int-to-float v1, p1

    iget v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareHeight:F

    mul-float/2addr v1, v2

    add-float/2addr v0, v1

    iget v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareHeight:F

    const/high16 v2, 0x40000000

    div-float/2addr v1, v2

    add-float/2addr v0, v1

    return v0
.end method

.method private getColumnHit(F)I
    .registers 10
    .param p1, "x"    # F

    .prologue
    .line 696
    iget v4, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    .line 697
    .local v4, "squareWidth":F
    iget v5, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mHitFactor:F

    mul-float v1, v4, v5

    .line 699
    .local v1, "hitSize":F
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingLeft()I

    move-result v5

    int-to-float v5, v5

    sub-float v6, v4, v1

    const/high16 v7, 0x40000000

    div-float/2addr v6, v7

    add-float v3, v5, v6

    .line 700
    .local v3, "offset":F
    const/4 v2, 0x0

    .local v2, "i":I
    :goto_13
    const/4 v5, 0x3

    if-ge v2, v5, :cond_28

    .line 702
    int-to-float v5, v2

    mul-float/2addr v5, v4

    add-float v0, v3, v5

    .line 703
    .local v0, "hitLeft":F
    cmpl-float v5, p1, v0

    if-ltz v5, :cond_25

    add-float v5, v0, v1

    cmpg-float v5, p1, v5

    if-gtz v5, :cond_25

    .line 707
    .end local v0    # "hitLeft":F
    .end local v2    # "i":I
    :goto_24
    return v2

    .line 700
    .restart local v0    # "hitLeft":F
    .restart local v2    # "i":I
    :cond_25
    add-int/lit8 v2, v2, 0x1

    goto :goto_13

    .line 707
    .end local v0    # "hitLeft":F
    :cond_28
    const/4 v2, -0x1

    goto :goto_24
.end method

.method private getRowHit(F)I
    .registers 10
    .param p1, "y"    # F

    .prologue
    .line 675
    iget v4, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareHeight:F

    .line 676
    .local v4, "squareHeight":F
    iget v5, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mHitFactor:F

    mul-float v0, v4, v5

    .line 678
    .local v0, "hitSize":F
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingTop()I

    move-result v5

    int-to-float v5, v5

    sub-float v6, v4, v0

    const/high16 v7, 0x40000000

    div-float/2addr v6, v7

    add-float v3, v5, v6

    .line 679
    .local v3, "offset":F
    const/4 v2, 0x0

    .local v2, "i":I
    :goto_13
    const/4 v5, 0x4

    if-ge v2, v5, :cond_28

    .line 681
    int-to-float v5, v2

    mul-float/2addr v5, v4

    add-float v1, v3, v5

    .line 682
    .local v1, "hitTop":F
    cmpl-float v5, p1, v1

    if-ltz v5, :cond_25

    add-float v5, v1, v0

    cmpg-float v5, p1, v5

    if-gtz v5, :cond_25

    .line 686
    .end local v1    # "hitTop":F
    .end local v2    # "i":I
    :goto_24
    return v2

    .line 679
    .restart local v1    # "hitTop":F
    .restart local v2    # "i":I
    :cond_25
    add-int/lit8 v2, v2, 0x1

    goto :goto_13

    .line 686
    .end local v1    # "hitTop":F
    :cond_28
    const/4 v2, -0x1

    goto :goto_24
.end method

.method private handleActionDown(Landroid/view/MotionEvent;)V
    .registers 13
    .param p1, "event"    # Landroid/view/MotionEvent;

    .prologue
    const/high16 v9, 0x40000000

    const/4 v8, 0x1

    .line 858
    iput-boolean v8, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mIsTouching:Z

    .line 860
    invoke-direct {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->resetPattern()V

    .line 861
    invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F

    move-result v5

    .line 862
    .local v5, "x":F
    invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F

    move-result v6

    .line 863
    .local v6, "y":F
    invoke-direct {p0, v5, v6, v8}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->detectAndAddHit(FFZ)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v1

    .line 864
    .local v1, "hitCell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    if-eqz v1, :cond_59

    iget-object v7, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v7}, Ljava/util/ArrayList;->size()I

    move-result v7

    if-ne v7, v8, :cond_59

    .line 865
    sget-object v7, Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;->Correct:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    iput-object v7, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDisplayMode:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    .line 866
    iget-boolean v7, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->isActionButton:Z

    if-nez v7, :cond_2f

    iget-boolean v7, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternInProgress:Z

    if-nez v7, :cond_2f

    .line 867
    invoke-direct {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->notifyPatternStarted()V

    .line 868
    iput-boolean v8, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternInProgress:Z

    .line 875
    :cond_2f
    :goto_2f
    if-eqz v1, :cond_54

    .line 876
    iget v7, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->column:I

    invoke-direct {p0, v7}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterXForColumn(I)F

    move-result v2

    .line 877
    .local v2, "startX":F
    iget v7, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->row:I

    invoke-direct {p0, v7}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterYForRow(I)F

    move-result v3

    .line 879
    .local v3, "startY":F
    iget v7, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    div-float v4, v7, v9

    .line 880
    .local v4, "widthOffset":F
    iget v7, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareHeight:F

    div-float v0, v7, v9

    .line 882
    .local v0, "heightOffset":F
    sub-float v7, v2, v4

    float-to-int v7, v7

    sub-float v8, v3, v0

    float-to-int v8, v8

    add-float v9, v2, v4

    float-to-int v9, v9

    add-float v10, v3, v0

    float-to-int v10, v10

    invoke-virtual {p0, v7, v8, v9, v10}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->invalidate(IIII)V

    .line 884
    .end local v0    # "heightOffset":F
    .end local v2    # "startX":F
    .end local v3    # "startY":F
    .end local v4    # "widthOffset":F
    :cond_54
    iput v5, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressX:F

    .line 885
    iput v6, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressY:F

    .line 892
    return-void

    .line 871
    :cond_59
    iget-boolean v7, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternInProgress:Z

    if-eqz v7, :cond_2f

    goto :goto_2f
.end method

.method private handleActionMove(Landroid/view/MotionEvent;)V
    .registers 33
    .param p1, "event"    # Landroid/view/MotionEvent;

    .prologue
    .line 755
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    move/from16 v26, v0

    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mDiameterFactor:F

    move/from16 v27, v0

    mul-float v26, v26, v27

    const/high16 v27, 0x3f000000

    mul-float v20, v26, v27

    .line 756
    .local v20, "radius":F
    invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getHistorySize()I

    move-result v8

    .line 757
    .local v8, "historySize":I
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTmpInvalidateRect:Landroid/graphics/Rect;

    move-object/from16 v26, v0

    invoke-virtual/range {v26 .. v26}, Landroid/graphics/Rect;->setEmpty()V

    .line 758
    const/4 v13, 0x0

    .line 759
    .local v13, "invalidateNow":Z
    const/4 v12, 0x0

    .local v12, "i":I
    :goto_21
    add-int/lit8 v26, v8, 0x1

    move/from16 v0, v26

    if-ge v12, v0, :cond_16c

    .line 760
    if-ge v12, v8, :cond_160

    move-object/from16 v0, p1

    invoke-virtual {v0, v12}, Landroid/view/MotionEvent;->getHistoricalX(I)F

    move-result v24

    .line 761
    .local v24, "x":F
    :goto_2f
    if-ge v12, v8, :cond_166

    move-object/from16 v0, p1

    invoke-virtual {v0, v12}, Landroid/view/MotionEvent;->getHistoricalY(I)F

    move-result v25

    .line 762
    .local v25, "y":F
    :goto_37
    const/16 v26, 0x0

    move-object/from16 v0, p0

    move/from16 v1, v24

    move/from16 v2, v25

    move/from16 v3, v26

    invoke-direct {v0, v1, v2, v3}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->detectAndAddHit(FFZ)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v9

    .line 763
    .local v9, "hitCell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    move-object/from16 v26, v0

    invoke-virtual/range {v26 .. v26}, Ljava/util/ArrayList;->size()I

    move-result v19

    .line 764
    .local v19, "patternSize":I
    if-eqz v9, :cond_72

    const/16 v26, 0x1

    move/from16 v0, v19

    move/from16 v1, v26

    if-ne v0, v1, :cond_72

    .line 765
    iget-boolean v0, v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->isActionButton:Z

    move/from16 v26, v0

    if-nez v26, :cond_72

    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternInProgress:Z

    move/from16 v26, v0

    if-nez v26, :cond_72

    .line 766
    invoke-direct/range {p0 .. p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->notifyPatternStarted()V

    .line 767
    const/16 v26, 0x1

    move/from16 v0, v26

    move-object/from16 v1, p0

    iput-boolean v0, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternInProgress:Z

    .line 772
    :cond_72
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressX:F

    move/from16 v26, v0

    sub-float v26, v24, v26

    invoke-static/range {v26 .. v26}, Ljava/lang/Math;->abs(F)F

    move-result v5

    .line 773
    .local v5, "dx":F
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressY:F

    move/from16 v26, v0

    sub-float v26, v25, v26

    invoke-static/range {v26 .. v26}, Ljava/lang/Math;->abs(F)F

    move-result v6

    .line 774
    .local v6, "dy":F
    const/16 v26, 0x0

    cmpl-float v26, v5, v26

    if-gtz v26, :cond_96

    const/16 v26, 0x0

    cmpl-float v26, v6, v26

    if-lez v26, :cond_97

    .line 775
    :cond_96
    const/4 v13, 0x1

    .line 778
    :cond_97
    move-object/from16 v0, p0

    iget-boolean v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternInProgress:Z

    move/from16 v26, v0

    if-eqz v26, :cond_15c

    if-lez v19, :cond_15c

    .line 779
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    move-object/from16 v18, v0

    .line 780
    .local v18, "pattern":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;>;"
    add-int/lit8 v26, v19, -0x1

    move-object/from16 v0, v18

    move/from16 v1, v26

    invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v14

    check-cast v14, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    .line 781
    .local v14, "lastCell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    iget v0, v14, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->column:I

    move/from16 v26, v0

    move-object/from16 v0, p0

    move/from16 v1, v26

    invoke-direct {v0, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterXForColumn(I)F

    move-result v15

    .line 782
    .local v15, "lastCellCenterX":F
    iget v0, v14, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->row:I

    move/from16 v26, v0

    move-object/from16 v0, p0

    move/from16 v1, v26

    invoke-direct {v0, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterYForRow(I)F

    move-result v16

    .line 785
    .local v16, "lastCellCenterY":F
    move/from16 v0, v24

    invoke-static {v15, v0}, Ljava/lang/Math;->min(FF)F

    move-result v26

    sub-float v17, v26, v20

    .line 786
    .local v17, "left":F
    move/from16 v0, v24

    invoke-static {v15, v0}, Ljava/lang/Math;->max(FF)F

    move-result v26

    add-float v21, v26, v20

    .line 787
    .local v21, "right":F
    move/from16 v0, v16

    move/from16 v1, v25

    invoke-static {v0, v1}, Ljava/lang/Math;->min(FF)F

    move-result v26

    sub-float v22, v26, v20

    .line 788
    .local v22, "top":F
    move/from16 v0, v16

    move/from16 v1, v25

    invoke-static {v0, v1}, Ljava/lang/Math;->max(FF)F

    move-result v26

    add-float v4, v26, v20

    .line 791
    .local v4, "bottom":F
    if-eqz v9, :cond_143

    .line 793
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    move/from16 v26, v0

    const/high16 v27, 0x3f000000

    mul-float v23, v26, v27

    .line 794
    .local v23, "width":F
    move-object/from16 v0, p0

    iget v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareHeight:F

    move/from16 v26, v0

    const/high16 v27, 0x3f000000

    mul-float v7, v26, v27

    .line 795
    .local v7, "height":F
    iget v0, v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->column:I

    move/from16 v26, v0

    move-object/from16 v0, p0

    move/from16 v1, v26

    invoke-direct {v0, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterXForColumn(I)F

    move-result v10

    .line 796
    .local v10, "hitCellCenterX":F
    iget v0, v9, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->row:I

    move/from16 v26, v0

    move-object/from16 v0, p0

    move/from16 v1, v26

    invoke-direct {v0, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterYForRow(I)F

    move-result v11

    .line 798
    .local v11, "hitCellCenterY":F
    sub-float v26, v10, v23

    move/from16 v0, v26

    move/from16 v1, v17

    invoke-static {v0, v1}, Ljava/lang/Math;->min(FF)F

    move-result v17

    .line 799
    add-float v26, v10, v23

    move/from16 v0, v26

    move/from16 v1, v21

    invoke-static {v0, v1}, Ljava/lang/Math;->max(FF)F

    move-result v21

    .line 800
    sub-float v26, v11, v7

    move/from16 v0, v26

    move/from16 v1, v22

    invoke-static {v0, v1}, Ljava/lang/Math;->min(FF)F

    move-result v22

    .line 801
    add-float v26, v11, v7

    move/from16 v0, v26

    invoke-static {v0, v4}, Ljava/lang/Math;->max(FF)F

    move-result v4

    .line 805
    .end local v7    # "height":F
    .end local v10    # "hitCellCenterX":F
    .end local v11    # "hitCellCenterY":F
    .end local v23    # "width":F
    :cond_143
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTmpInvalidateRect:Landroid/graphics/Rect;

    move-object/from16 v26, v0

    invoke-static/range {v17 .. v17}, Ljava/lang/Math;->round(F)I

    move-result v27

    invoke-static/range {v22 .. v22}, Ljava/lang/Math;->round(F)I

    move-result v28

    invoke-static/range {v21 .. v21}, Ljava/lang/Math;->round(F)I

    move-result v29

    invoke-static {v4}, Ljava/lang/Math;->round(F)I

    move-result v30

    invoke-virtual/range {v26 .. v30}, Landroid/graphics/Rect;->union(IIII)V

    .line 759
    .end local v4    # "bottom":F
    .end local v14    # "lastCell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    .end local v15    # "lastCellCenterX":F
    .end local v16    # "lastCellCenterY":F
    .end local v17    # "left":F
    .end local v18    # "pattern":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;>;"
    .end local v21    # "right":F
    .end local v22    # "top":F
    :cond_15c
    add-int/lit8 v12, v12, 0x1

    goto/16 :goto_21

    .line 760
    .end local v5    # "dx":F
    .end local v6    # "dy":F
    .end local v9    # "hitCell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    .end local v19    # "patternSize":I
    .end local v24    # "x":F
    .end local v25    # "y":F
    :cond_160
    invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getX()F

    move-result v24

    goto/16 :goto_2f

    .line 761
    .restart local v24    # "x":F
    :cond_166
    invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getY()F

    move-result v25

    goto/16 :goto_37

    .line 808
    .end local v24    # "x":F
    :cond_16c
    invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getX()F

    move-result v26

    move/from16 v0, v26

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressX:F

    .line 809
    invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getY()F

    move-result v26

    move/from16 v0, v26

    move-object/from16 v1, p0

    iput v0, v1, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressY:F

    .line 812
    if-eqz v13, :cond_1ad

    .line 813
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInvalidate:Landroid/graphics/Rect;

    move-object/from16 v26, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTmpInvalidateRect:Landroid/graphics/Rect;

    move-object/from16 v27, v0

    invoke-virtual/range {v26 .. v27}, Landroid/graphics/Rect;->union(Landroid/graphics/Rect;)V

    .line 814
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInvalidate:Landroid/graphics/Rect;

    move-object/from16 v26, v0

    move-object/from16 v0, p0

    move-object/from16 v1, v26

    invoke-virtual {v0, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->invalidate(Landroid/graphics/Rect;)V

    .line 815
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInvalidate:Landroid/graphics/Rect;

    move-object/from16 v26, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTmpInvalidateRect:Landroid/graphics/Rect;

    move-object/from16 v27, v0

    invoke-virtual/range {v26 .. v27}, Landroid/graphics/Rect;->set(Landroid/graphics/Rect;)V

    .line 817
    :cond_1ad
    return-void
.end method

.method private handleActionUp(Landroid/view/MotionEvent;)V
    .registers 11
    .param p1, "event"    # Landroid/view/MotionEvent;

    .prologue
    const/4 v8, 0x2

    const/4 v7, 0x1

    const/4 v6, 0x0

    const/4 v5, 0x3

    .line 820
    iput-boolean v6, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mIsTouching:Z

    .line 822
    const/4 v1, 0x0

    .local v1, "i":I
    :goto_7
    const/4 v3, 0x4

    if-ge v1, v3, :cond_22

    .line 823
    const/4 v2, 0x0

    .local v2, "j":I
    :goto_b
    if-ge v2, v5, :cond_1f

    .line 824
    iget-object v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    aget-object v3, v3, v1

    aget-boolean v3, v3, v2

    if-ne v3, v7, :cond_1c

    .line 825
    invoke-static {v1, v2}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v3

    invoke-direct {p0, v3}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->animateFadeOut(Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;)V

    .line 823
    :cond_1c
    add-int/lit8 v2, v2, 0x1

    goto :goto_b

    .line 822
    :cond_1f
    add-int/lit8 v1, v1, 0x1

    goto :goto_7

    .line 830
    .end local v2    # "j":I
    :cond_22
    iget-object v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnActionButtonClickListener:Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;

    if-eqz v3, :cond_51

    .line 831
    invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F

    move-result v3

    invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F

    move-result v4

    invoke-direct {p0, v3, v4}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCellForNewHit(FF)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v0

    .line 832
    .local v0, "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    if-eqz v0, :cond_51

    iget-boolean v3, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->isActionButton:Z

    if-eqz v3, :cond_51

    .line 833
    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getColumn()I

    move-result v3

    if-nez v3, :cond_66

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getRow()I

    move-result v3

    if-ne v3, v5, :cond_66

    iget-object v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    aget-object v3, v3, v5

    aget-boolean v3, v3, v6

    if-eqz v3, :cond_66

    .line 834
    iget-object v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnActionButtonClickListener:Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;

    invoke-interface {v3}, Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;->onCancelClick()V

    .line 842
    .end local v0    # "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    :cond_51
    :goto_51
    iget-object v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v3}, Ljava/util/ArrayList;->size()I

    move-result v3

    iget v4, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPwdLength:I

    if-lt v3, v4, :cond_65

    .line 843
    iput-boolean v6, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternInProgress:Z

    .line 844
    iput-boolean v7, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDetected:Z

    .line 845
    invoke-direct {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->notifyPatternDetected()V

    .line 846
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->invalidate()V

    .line 855
    :cond_65
    return-void

    .line 835
    .restart local v0    # "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    :cond_66
    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getColumn()I

    move-result v3

    if-ne v3, v8, :cond_51

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getRow()I

    move-result v3

    if-ne v3, v5, :cond_51

    iget-object v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    aget-object v3, v3, v5

    aget-boolean v3, v3, v8

    if-eqz v3, :cond_51

    .line 836
    iget-object v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnActionButtonClickListener:Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;

    iget-object v4, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-interface {v3, v4}, Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;->onDeleteClick(Ljava/util/List;)V

    goto :goto_51
.end method

.method private notifyCellAdded()V
    .registers 3

    .prologue
    .line 445
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnPatternListener:Lcom/zuimeia/ui/lockpattern/OnPatternListener;

    if-eqz v0, :cond_b

    .line 446
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnPatternListener:Lcom/zuimeia/ui/lockpattern/OnPatternListener;

    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-interface {v0, v1}, Lcom/zuimeia/ui/lockpattern/OnPatternListener;->onPatternCellAdded(Ljava/util/List;)V

    .line 448
    :cond_b
    return-void
.end method

.method private notifyPatternDetected()V
    .registers 3

    .prologue
    .line 457
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnPatternListener:Lcom/zuimeia/ui/lockpattern/OnPatternListener;

    if-eqz v0, :cond_b

    .line 458
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnPatternListener:Lcom/zuimeia/ui/lockpattern/OnPatternListener;

    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-interface {v0, v1}, Lcom/zuimeia/ui/lockpattern/OnPatternListener;->onPatternDetected(Ljava/util/List;)V

    .line 460
    :cond_b
    return-void
.end method

.method private notifyPatternStarted()V
    .registers 2

    .prologue
    .line 451
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnPatternListener:Lcom/zuimeia/ui/lockpattern/OnPatternListener;

    if-eqz v0, :cond_9

    .line 452
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnPatternListener:Lcom/zuimeia/ui/lockpattern/OnPatternListener;

    invoke-interface {v0}, Lcom/zuimeia/ui/lockpattern/OnPatternListener;->onPatternStart()V

    .line 454
    :cond_9
    return-void
.end method

.method private resetPattern()V
    .registers 3

    .prologue
    const/4 v1, 0x0

    .line 480
    iget-boolean v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDetected:Z

    if-eqz v0, :cond_e

    .line 481
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V

    .line 482
    iput-boolean v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDetected:Z

    .line 483
    iput-boolean v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternInProgress:Z

    .line 486
    :cond_e
    invoke-direct {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->clearPatternDrawLookup()V

    .line 487
    sget-object v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;->Correct:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    iput-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDisplayMode:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    .line 488
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->invalidate()V

    .line 489
    return-void
.end method

.method private resolveMeasured(II)I
    .registers 6
    .param p1, "measureSpec"    # I
    .param p2, "desired"    # I

    .prologue
    .line 535
    const/4 v0, 0x0

    .line 536
    .local v0, "result":I
    invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I

    move-result v1

    .line 537
    .local v1, "specSize":I
    invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I

    move-result v2

    sparse-switch v2, :sswitch_data_16

    .line 546
    move v0, v1

    .line 548
    :goto_d
    return v0

    .line 539
    :sswitch_e
    move v0, p2

    .line 540
    goto :goto_d

    .line 542
    :sswitch_10
    invoke-static {v1, p2}, Ljava/lang/Math;->max(II)I

    move-result v0

    .line 543
    goto :goto_d

    .line 537
    nop

    :sswitch_data_16
    .sparse-switch
        -0x80000000 -> :sswitch_10
        0x0 -> :sswitch_e
    .end sparse-switch
.end method


# virtual methods
.method public clearPattern()V
    .registers 2

    .prologue
    .line 472
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V

    .line 473
    invoke-direct {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->resetPattern()V

    .line 474
    return-void
.end method

.method public disableInput()V
    .registers 2

    .prologue
    .line 514
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInputEnabled:Z

    .line 515
    return-void
.end method

.method public enableInput()V
    .registers 2

    .prologue
    .line 521
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInputEnabled:Z

    .line 522
    return-void
.end method

.method protected getSuggestedMinimumHeight()I
    .registers 2

    .prologue
    .line 558
    const/4 v0, 0x0

    return v0
.end method

.method protected getSuggestedMinimumWidth()I
    .registers 2

    .prologue
    .line 553
    const/4 v0, 0x0

    return v0
.end method

.method public isInStealthMode()Z
    .registers 2

    .prologue
    .line 359
    iget-boolean v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInStealthMode:Z

    return v0
.end method

.method public isTactileFeedbackEnabled()Z
    .registers 2

    .prologue
    .line 366
    iget-boolean v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mEnableHapticFeedback:Z

    return v0
.end method

.method protected onDraw(Landroid/graphics/Canvas;)V
    .registers 19
    .param p1, "canvas"    # Landroid/graphics/Canvas;

    .prologue
    .line 1031
    move-object/from16 v0, p0

    iget-object v9, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    .line 1032
    .local v9, "drawLookup":[[Z
    move-object/from16 v0, p0

    iget-object v10, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternFadingOutLookup:[[Z

    .line 1034
    .local v10, "fadingLookup":[[Z
    move-object/from16 v0, p0

    iget v15, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    .line 1035
    .local v15, "squareWidth":F
    move-object/from16 v0, p0

    iget v14, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareHeight:F

    .line 1039
    .local v14, "squareHeight":F
    move-object/from16 v0, p0

    iget-object v8, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mCurrentPath:Landroid/graphics/Path;

    .line 1040
    .local v8, "currentPath":Landroid/graphics/Path;
    invoke-virtual {v8}, Landroid/graphics/Path;->rewind()V

    .line 1043
    invoke-virtual/range {p0 .. p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingTop()I

    move-result v13

    .line 1044
    .local v13, "paddingTop":I
    invoke-virtual/range {p0 .. p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingLeft()I

    move-result v12

    .line 1046
    .local v12, "paddingLeft":I
    const/4 v6, 0x0

    .local v6, "i":I
    :goto_20
    const/4 v1, 0x4

    if-ge v6, v1, :cond_4c

    .line 1047
    int-to-float v1, v13

    int-to-float v2, v6

    mul-float/2addr v2, v14

    add-float v16, v1, v2

    .line 1048
    .local v16, "topY":F
    const/4 v7, 0x0

    .local v7, "j":I
    :goto_29
    const/4 v1, 0x3

    if-ge v7, v1, :cond_49

    .line 1049
    int-to-float v1, v12

    int-to-float v2, v7

    mul-float/2addr v2, v15

    add-float v11, v1, v2

    .line 1050
    .local v11, "leftX":F
    float-to-int v3, v11

    move/from16 v0, v16

    float-to-int v4, v0

    aget-object v1, v9, v6

    aget-boolean v1, v1, v7

    aget-object v2, v10, v6

    aget-boolean v2, v2, v7

    or-int v5, v1, v2

    move-object/from16 v1, p0

    move-object/from16 v2, p1

    invoke-direct/range {v1 .. v7}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->drawCircle(Landroid/graphics/Canvas;IIZII)V

    .line 1048
    add-int/lit8 v7, v7, 0x1

    goto :goto_29

    .line 1046
    .end local v11    # "leftX":F
    :cond_49
    add-int/lit8 v6, v6, 0x1

    goto :goto_20

    .line 1054
    .end local v7    # "j":I
    .end local v16    # "topY":F
    :cond_4c
    return-void
.end method

.method public onHoverEvent(Landroid/view/MotionEvent;)Z
    .registers 4
    .param p1, "event"    # Landroid/view/MotionEvent;

    .prologue
    .line 713
    invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I

    move-result v0

    .line 714
    .local v0, "action":I
    packed-switch v0, :pswitch_data_22

    .line 725
    :goto_7
    :pswitch_7
    invoke-virtual {p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->onTouchEvent(Landroid/view/MotionEvent;)Z

    .line 726
    invoke-virtual {p1, v0}, Landroid/view/MotionEvent;->setAction(I)V

    .line 728
    invoke-super {p0, p1}, Landroid/view/View;->onHoverEvent(Landroid/view/MotionEvent;)Z

    move-result v1

    return v1

    .line 716
    :pswitch_12
    const/4 v1, 0x0

    invoke-virtual {p1, v1}, Landroid/view/MotionEvent;->setAction(I)V

    goto :goto_7

    .line 719
    :pswitch_17
    const/4 v1, 0x2

    invoke-virtual {p1, v1}, Landroid/view/MotionEvent;->setAction(I)V

    goto :goto_7

    .line 722
    :pswitch_1c
    const/4 v1, 0x1

    invoke-virtual {p1, v1}, Landroid/view/MotionEvent;->setAction(I)V

    goto :goto_7

    .line 714
    nop

    :pswitch_data_22
    .packed-switch 0x7
        :pswitch_17
        :pswitch_7
        :pswitch_12
        :pswitch_1c
    .end packed-switch
.end method

.method protected onMeasure(II)V
    .registers 8
    .param p1, "widthMeasureSpec"    # I
    .param p2, "heightMeasureSpec"    # I

    .prologue
    .line 563
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getSuggestedMinimumWidth()I

    move-result v1

    .line 564
    .local v1, "minimumWidth":I
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getSuggestedMinimumHeight()I

    move-result v0

    .line 565
    .local v0, "minimumHeight":I
    invoke-direct {p0, p1, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->resolveMeasured(II)I

    move-result v3

    .line 566
    .local v3, "viewWidth":I
    invoke-direct {p0, p2, v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->resolveMeasured(II)I

    move-result v2

    .line 568
    .local v2, "viewHeight":I
    iget v4, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mAspect:I

    packed-switch v4, :pswitch_data_2a

    .line 580
    :goto_15
    invoke-virtual {p0, v3, v2}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->setMeasuredDimension(II)V

    .line 581
    return-void

    .line 570
    :pswitch_19
    invoke-static {v3, v2}, Ljava/lang/Math;->min(II)I

    move-result v2

    move v3, v2

    .line 571
    goto :goto_15

    .line 573
    :pswitch_1f
    invoke-static {v3, v2}, Ljava/lang/Math;->min(II)I

    move-result v2

    .line 574
    goto :goto_15

    .line 576
    :pswitch_24
    invoke-static {v3, v2}, Ljava/lang/Math;->min(II)I

    move-result v3

    goto :goto_15

    .line 568
    nop

    :pswitch_data_2a
    .packed-switch 0x0
        :pswitch_19
        :pswitch_1f
        :pswitch_24
    .end packed-switch
.end method

.method protected onRestoreInstanceState(Landroid/os/Parcelable;)V
    .registers 5
    .param p1, "state"    # Landroid/os/Parcelable;

    .prologue
    .line 1107
    move-object v0, p1

    check-cast v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;

    .line 1108
    .local v0, "ss":Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;
    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;->getSuperState()Landroid/os/Parcelable;

    move-result-object v1

    invoke-super {p0, v1}, Landroid/view/View;->onRestoreInstanceState(Landroid/os/Parcelable;)V

    .line 1109
    sget-object v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;->Correct:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;->getSerializedPattern()Ljava/lang/String;

    move-result-object v2

    invoke-static {v2}, Lcom/zuimeia/ui/lockpattern/LockPatternUtils;->stringToNumberPattern(Ljava/lang/String;)Ljava/util/List;

    move-result-object v2

    invoke-virtual {p0, v1, v2}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->setPattern(Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;Ljava/util/List;)V

    .line 1110
    invoke-static {}, Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;->values()[Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    move-result-object v1

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;->getDisplayMode()I

    move-result v2

    aget-object v1, v1, v2

    iput-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDisplayMode:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    .line 1111
    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;->isInputEnabled()Z

    move-result v1

    iput-boolean v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInputEnabled:Z

    .line 1112
    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;->isInStealthMode()Z

    move-result v1

    iput-boolean v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInStealthMode:Z

    .line 1113
    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;->isTactileFeedbackEnabled()Z

    move-result v1

    iput-boolean v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mEnableHapticFeedback:Z

    .line 1114
    return-void
.end method

.method protected onSaveInstanceState()Landroid/os/Parcelable;
    .registers 9

    .prologue
    .line 1100
    invoke-super {p0}, Landroid/view/View;->onSaveInstanceState()Landroid/os/Parcelable;

    move-result-object v1

    .line 1101
    .local v1, "superState":Landroid/os/Parcelable;
    new-instance v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;

    iget-object v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-static {v2}, Lcom/zuimeia/ui/lockpattern/LockPatternUtils;->patternToString(Ljava/util/List;)Ljava/lang/String;

    move-result-object v2

    iget-object v3, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDisplayMode:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    invoke-virtual {v3}, Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;->ordinal()I

    move-result v3

    iget-boolean v4, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInputEnabled:Z

    iget-boolean v5, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInStealthMode:Z

    iget-boolean v6, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mEnableHapticFeedback:Z

    const/4 v7, 0x0

    invoke-direct/range {v0 .. v7}, Lcom/zuimeia/ui/lockpattern/LockNumberView$SavedState;-><init>(Landroid/os/Parcelable;Ljava/lang/String;IZZZLcom/zuimeia/ui/lockpattern/LockNumberView$1;)V

    return-object v0
.end method

.method protected onSizeChanged(IIII)V
    .registers 9
    .param p1, "w"    # I
    .param p2, "h"    # I
    .param p3, "oldw"    # I
    .param p4, "oldh"    # I

    .prologue
    .line 526
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingLeft()I

    move-result v2

    sub-int v2, p1, v2

    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingRight()I

    move-result v3

    sub-int v1, v2, v3

    .line 527
    .local v1, "width":I
    int-to-float v2, v1

    const/high16 v3, 0x40400000

    div-float/2addr v2, v3

    iput v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareWidth:F

    .line 529
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingTop()I

    move-result v2

    sub-int v2, p2, v2

    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getPaddingBottom()I

    move-result v3

    sub-int v0, v2, v3

    .line 530
    .local v0, "height":I
    int-to-float v2, v0

    const/high16 v3, 0x40800000

    div-float/2addr v2, v3

    iput v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mSquareHeight:F

    .line 532
    return-void
.end method

.method public onTouchEvent(Landroid/view/MotionEvent;)Z
    .registers 5
    .param p1, "event"    # Landroid/view/MotionEvent;

    .prologue
    const/4 v1, 0x0

    const/4 v0, 0x1

    .line 733
    iget-boolean v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInputEnabled:Z

    if-eqz v2, :cond_c

    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->isEnabled()Z

    move-result v2

    if-nez v2, :cond_e

    :cond_c
    move v0, v1

    .line 749
    :goto_d
    return v0

    .line 737
    :cond_e
    invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I

    move-result v2

    packed-switch v2, :pswitch_data_24

    move v0, v1

    .line 749
    goto :goto_d

    .line 739
    :pswitch_17
    invoke-direct {p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->handleActionDown(Landroid/view/MotionEvent;)V

    goto :goto_d

    .line 742
    :pswitch_1b
    invoke-direct {p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->handleActionMove(Landroid/view/MotionEvent;)V

    goto :goto_d

    .line 746
    :pswitch_1f
    invoke-direct {p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->handleActionUp(Landroid/view/MotionEvent;)V

    goto :goto_d

    .line 737
    nop

    :pswitch_data_24
    .packed-switch 0x0
        :pswitch_17
        :pswitch_1f
        :pswitch_1b
        :pswitch_1f
    .end packed-switch
.end method

.method public removeLastCell()V
    .registers 5

    .prologue
    .line 628
    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v1}, Ljava/util/ArrayList;->size()I

    move-result v1

    if-lez v1, :cond_27

    .line 629
    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    iget-object v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v2}, Ljava/util/ArrayList;->size()I

    move-result v2

    add-int/lit8 v2, v2, -0x1

    invoke-virtual {v1, v2}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    .line 630
    .local v0, "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getRow()I

    move-result v2

    aget-object v1, v1, v2

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getColumn()I

    move-result v2

    const/4 v3, 0x0

    aput-boolean v3, v1, v2

    .line 632
    .end local v0    # "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    :cond_27
    return-void
.end method

.method public setDisplayMode(Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;)V
    .registers 5
    .param p1, "displayMode"    # Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    .prologue
    .line 430
    iput-object p1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDisplayMode:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    .line 431
    sget-object v1, Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;->Animate:Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;

    if-ne p1, v1, :cond_36

    .line 432
    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v1}, Ljava/util/ArrayList;->size()I

    move-result v1

    if-nez v1, :cond_16

    .line 433
    new-instance v1, Ljava/lang/IllegalStateException;

    const-string v2, "you must have a pattern to animate if you want to set the display mode to animate"

    invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 436
    :cond_16
    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    const/4 v2, 0x0

    invoke-virtual {v1, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    .line 437
    .local v0, "first":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getColumn()I

    move-result v1

    invoke-direct {p0, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterXForColumn(I)F

    move-result v1

    iput v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressX:F

    .line 438
    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getRow()I

    move-result v1

    invoke-direct {p0, v1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->getCenterYForRow(I)F

    move-result v1

    iput v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInProgressY:F

    .line 439
    invoke-direct {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->clearPatternDrawLookup()V

    .line 441
    .end local v0    # "first":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    :cond_36
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->invalidate()V

    .line 442
    return-void
.end method

.method public setHighlightTextColor(I)V
    .registers 2
    .param p1, "color"    # I

    .prologue
    .line 328
    iput p1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mHighlightTextColor:I

    .line 329
    return-void
.end method

.method public setInStealthMode(Z)V
    .registers 2
    .param p1, "inStealthMode"    # Z

    .prologue
    .line 375
    iput-boolean p1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mInStealthMode:Z

    .line 376
    return-void
.end method

.method public setOnActionButtonClickListener(Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;)V
    .registers 2
    .param p1, "listener"    # Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;

    .prologue
    .line 403
    iput-object p1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnActionButtonClickListener:Lcom/zuimeia/ui/lockpattern/LockNumberView$OnActionButtonClickListener;

    .line 404
    return-void
.end method

.method public setOnPatternListener(Lcom/zuimeia/ui/lockpattern/OnPatternListener;)V
    .registers 2
    .param p1, "onPatternListener"    # Lcom/zuimeia/ui/lockpattern/OnPatternListener;

    .prologue
    .line 393
    iput-object p1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mOnPatternListener:Lcom/zuimeia/ui/lockpattern/OnPatternListener;

    .line 394
    return-void
.end method

.method public setPattern(Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;Ljava/util/List;)V
    .registers 8
    .param p1, "displayMode"    # Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;",
            "Ljava/util/List",
            "<",
            "Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;",
            ">;)V"
        }
    .end annotation

    .prologue
    .line 413
    .local p2, "pattern":Ljava/util/List;, "Ljava/util/List<Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;>;"
    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v1}, Ljava/util/ArrayList;->clear()V

    .line 414
    iget-object v1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPattern:Ljava/util/ArrayList;

    invoke-virtual {v1, p2}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z

    .line 415
    invoke-direct {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->clearPatternDrawLookup()V

    .line 416
    invoke-interface {p2}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v1

    :goto_11
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v2

    if-eqz v2, :cond_2d

    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    .line 417
    .local v0, "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    iget-object v2, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mPatternDrawLookup:[[Z

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getRow()I

    move-result v3

    aget-object v2, v2, v3

    invoke-virtual {v0}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->getColumn()I

    move-result v3

    const/4 v4, 0x1

    aput-boolean v4, v2, v3

    goto :goto_11

    .line 420
    .end local v0    # "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    :cond_2d
    invoke-virtual {p0, p1}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->setDisplayMode(Lcom/zuimeia/ui/lockpattern/LockNumberView$DisplayMode;)V

    .line 421
    return-void
.end method

.method public setTactileFeedbackEnabled(Z)V
    .registers 2
    .param p1, "tactileFeedbackEnabled"    # Z

    .prologue
    .line 384
    iput-boolean p1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mEnableHapticFeedback:Z

    .line 385
    return-void
.end method

.method public setTextColor(I)V
    .registers 2
    .param p1, "color"    # I

    .prologue
    .line 324
    iput p1, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextColor:I

    .line 325
    return-void
.end method

.method public setThemeColors([[I)V
    .registers 9
    .param p1, "colors"    # [[I

    .prologue
    const/4 v6, 0x1

    const/4 v5, 0x3

    .line 332
    const/4 v1, 0x0

    .local v1, "i":I
    :goto_3
    if-ge v1, v5, :cond_20

    .line 333
    const/4 v2, 0x0

    .local v2, "j":I
    :goto_6
    if-ge v2, v5, :cond_1d

    .line 334
    invoke-static {v1, v2}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v0

    .line 335
    .local v0, "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    aget-object v4, p1, v1

    aget v4, v4, v2

    iput v4, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->color:I

    .line 336
    iget v4, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->color:I

    invoke-static {v4}, Landroid/graphics/Color;->alpha(I)I

    move-result v4

    iput v4, v0, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->maxAlpha:I

    .line 333
    add-int/lit8 v2, v2, 0x1

    goto :goto_6

    .line 332
    .end local v0    # "cell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    :cond_1d
    add-int/lit8 v1, v1, 0x1

    goto :goto_3

    .line 340
    .end local v2    # "j":I
    :cond_20
    invoke-static {v5, v6}, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->of(II)Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;

    move-result-object v3

    .line 341
    .local v3, "zeroCell":Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;
    aget-object v4, p1, v5

    aget v4, v4, v6

    iput v4, v3, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->color:I

    .line 342
    iget v4, v3, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->color:I

    invoke-static {v4}, Landroid/graphics/Color;->alpha(I)I

    move-result v4

    iput v4, v3, Lcom/zuimeia/ui/lockpattern/LockNumberView$Cell;->maxAlpha:I

    .line 344
    invoke-virtual {p0}, Lcom/zuimeia/ui/lockpattern/LockNumberView;->invalidate()V

    .line 345
    return-void
.end method

.method public setTypeface(Landroid/graphics/Typeface;)V
    .registers 3
    .param p1, "typeface"    # Landroid/graphics/Typeface;

    .prologue
    .line 352
    iget-object v0, p0, Lcom/zuimeia/ui/lockpattern/LockNumberView;->mTextPaint:Landroid/graphics/Paint;

    invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;

    .line 353
    return-void
.end method
